# logger_config.py

import logging
from logging.handlers import RotatingFileHandler
# 配置日志
"""
app.logger.info('访问了首页')
app.logger.error('发生了一个错误')
    DEBUG: 详细的调试信息，通常用于开发阶段。#
    INFO: 确认程序按预期运行。#
    WARNING: 表示一些不期望的事情发生，但程序仍然正常运行。#
    ERROR: 由于更严重的问题，程序的某些功能无法正常工作。#
    CRITICAL: 严重的错误，可能导致程序无法继续运行。
"""
def configure_logging(app):
    """
    配置 Flask 应用的日志系统。
    """
    # 设置日志级别
    # app.logger.setLevel(logging.INFO)
    app.logger.setLevel(logging.DEBUG)

    # 创建日志文件处理器
    file_handler = RotatingFileHandler(
        'app.log',          # 日志文件名
        maxBytes=8*1024*1024,  # 单个日志文件最大大小（8MB）
        backupCount=10       # 保留的旧日志文件数量
    )
    # file_handler.setLevel(logging.INFO)

    # 创建控制台日志处理器
    console_handler = logging.StreamHandler()
    console_handler.setLevel(logging.DEBUG)

    # 创建日志格式
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    file_handler.setFormatter(formatter)
    console_handler.setFormatter(formatter)

    # 将处理器添加到应用的日志记录器中
    app.logger.addHandler(file_handler)
    app.logger.addHandler(console_handler)

    # 可选：设置 Werkzeug 日志（Flask 底层使用的日志记录器）
    werkzeug_logger = logging.getLogger('werkzeug')
    werkzeug_logger.setLevel(logging.WARNING) #logging.INFO
    werkzeug_logger.addHandler(file_handler)
    werkzeug_logger.addHandler(console_handler)